1. Field of the Invention
The present invention relates to systems and methods for protecting software from unauthorized copying and/or execution, and in particular to a system and method that protects software via multiple-route execution.
2. Description of the Related Art
Software piracy is a long-standing problem for software developers. Many techniques for discouraging software privacy have been developed. Products are available for those who lack either the time or the specialized expertise to secure their software applications from unauthorized copying and/or use (such products are available from RAINBOW TECHNOLOGIES, INC., the assignee of the present invention). Such products use software protection techniques that can be categorized into two forms: link-in object modules and shelling technology.
Link-in modules require that the developer modify the software code to call specific functions that check for license conditions. Consequently, this technique is sometimes referred to as “manual” protection.
Shelling does not require code changes, and is therefore easier for the software developer to implement. With the shelling technique, a shell process reads the application and produces a modified, new executable which contains an outer layer of protection code (with the original executable code usually encrypted inside). This method is often called “automatic” protection.
The problem with shelling is that the software program is protected only by the outer layer of protection. Consequently, a hacker can gain access to the protected application “just” by cracking the outer layer of protection. Because this protection code executes before the original application code starts, it usually runs in a fixed, known pattern. A cracker can follow the code execution (for example, by running it under a debugger), and once the code execution sequence is understood, the cracker can modify the code (for example, by patching the executable) to bypass/disable license checking.
What is needed is a software shelling technique that resists cracking. The present invention satisfies that need.